package com.itany.shop.tran;

/**
 * @author 石小俊
 */
public interface TransactionManager {

    /**
     * 开启事务，将MySQL的事务改为手动事务
     */
    void begin();

    /**
     * 提交事务
     * 一个完整的事务流程涉及到开启事务、提交/回滚事务
     * 此时所涉及的连接必须是同一个
     * 我们的连接已经实现了线程单例
     * 因此，在提交与回滚事务之前，连接不能释放
     * 当提交或者回滚事务之后，连接从线程池中释放
     */
    void commit();

    /**
     * 回滚事务
     */
    void rollback();

}
